#pragma once
#include <map>
#include "..\..\Gof23\Gof_Singleton\Singleton11T.h"
#include "..\..\MainUI\InterFaceUIMain.h"
#include "..\InterfaceModRunCreate.h"

class FactoryOutput : public Singleton11T<FactoryOutput>
{
public:
    FactoryOutput();
    ~FactoryOutput();

private:

    //禁用拷贝构造和赋值重载
    FactoryOutput(const FactoryOutput& hs) = delete;
    FactoryOutput& operator=(const FactoryOutput& hs) = delete;

public:

    //初始化ModRun信息;
    void InitData(IUIElement* pElement);

    //创建IOutput:显示简介和描述;
    std::shared_ptr<IOutput> CreateDescOutput();

    //创建IOutput:显示运行结果;
    std::shared_ptr<IOutput> CreateRunOutput();

private:

    //UI元素;
    IUIElement* m_pUIElement;
};

